
function gridUtil(p,bg_params,hide_list)	{
	this.p = p;	//html 载体
	this.cur_param = ""; // 当前gird的查询条件
	this.m_params = []; //用于保存初始查询条件(如url传过来的参数)
	this.hide_index = hide_list; //隐藏字段
	this.m_search = $("#id_search", this.p); 
	this.m_gird = $("#id_main_div",this.p).find("table");	//grid DOM本体
	this.bg_params = bg_params; //导出基本url
	$("#id_search").find("input:first").focus();
	/*
	 * 绑定点击事件
	 * ......
	 */
	 //绑定"查询"点击事件
	$("#id_header_search",this.m_search).click(do_search);	
	//绑定"统计"点击事件
	$("#id_header_calculate",this.m_search).click(do_calculate)
	//绑定"清除"点击事件
	$("#id_header_clear",this.m_search).click(do_clear);
	/*
	 * 实时获取当前grid Dom本体
	 */
	function get_grid()
	{
		return $("#id_main_div",this.p).find("table");
	}
	this.get_grid = get_grid;
}

/****************** 公共调用部分 **********************/
/*
 * 获取当前grid util
 */
function	get_cur_util(){
	return m_util
}
/*
 * 功能：验证选择日期的有效性  
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com
 */
var valid_date= function(){ 
	if ($("#start").val()=="" || $("#end").val()==""){
		alert(gettext("请选择开始日期和结束日期"));
		return false;
	}
	var st=new Date($("#start").val().replace(/-/g,"/"));
	var et=new Date($("#end").val().replace(/-/g,"/"));
	if(st>et){
		alert(gettext("开始日期不能大于结束日期"));
		return false;
	}
	if(et>new Date()){
		alert(gettext("结束日期不能大于今天"));
		return false;
	}
	if(((et-st)>31*24*60*60*1000)|| (et.getMonth()>st.getMonth() && et.getDate()>=st.getDate())){
		alert(gettext("时间跨度不能超过一个月！"));
		return false;			
	}
	return true
}

/*
 *功能： 调用考勤统计函数 
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com
 */
function do_calculate(){
	if (!valid_date()) return;
	if(confirm(gettext("统计的时间可能会较长，请耐心等待"))==false)
			return ;
	var m_params = m_util.m_params;
	var where = []
	m_util.m_search.find("input,select").each(function(){
		where.push($(this).attr("name")+"="+$(this).val())
		m_params.push({name: $(this).attr("name"),value: $(this).val()});
	});
	var url = "/att/AttReCalc/?"+where.join("&");
	$.ajax({
		url:url,
		type:"POST",
		timeout: 600000,    //10分钟
		success:function(ret){
			m_util.m_gird.flexOptions({
				newp :1,
				params : m_params
			}).flexReload();
		}
	});
	
}

/*
 * '查询'事件触发
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com
 */
function do_search() {
	var m_params = m_util.m_params;
	m_util.m_search.find("input,select").each(function(){
		m_params.push({name: $(this).attr("name"),value: $(this).val()});
	})
	m_util.m_gird.flexOptions({
		newp :1,
		params : m_params
	}).flexReload();
}
/*
 * 添加'查询'条件事件触发
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com
 */
function update_search(opt) {
	var m_params = m_util.m_params;
	m_params.push(opt);
	m_util.m_gird.flexOptions({
		newp :1,
		params : m_params
	}).flexReload();
}
/*
 * 考勤异常查看功能 
 * 参数：异常项的id值
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 */
function showDetail(ids) {
	var option = {
		iframe : '/page/att/ExceptionAttshifts/?pure&ids='+ids,
		width : 640,
		height : 205,
		over:false,
		drag:false,
		max:false,
		title:gettext('明细详情'),
		fixed:true
		}
	jw.dialog(option);
}
/*
 * 功能：人员编号显示格式化
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 */
function format_pin(tdDiv, id) {
    $(tdDiv).html('<a class="obj_edit_href" ref="'+id+'" onclick="do_update('+id+')" href="javascript:void(0)">'+$(tdDiv).html()+'</a>');
}
/*
 * 行编辑、删除操作显示格式化
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 */
function format_operation(tdDiv, id){
	$(tdDiv).html('<a class="action_op_edit" ref="'+id+'" onclick="do_update('+id+')" href="javascript:void(0)"><span class="edit" style="padding-left: 18px;">编辑</span></a>&nbsp;&nbsp;&nbsp;&nbsp;<a class="action__delete" ref="'+id+'" onclick="do_delete('+id+')" href="javascript:void(0)"><span class="delete" style="padding-left: 18px;">删除</span></a>');
}
/*
 * 功能：编辑操作 
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 * 参数：id:当前编辑对象的id
 */
function do_update(id){
	var data_model_url = $("#data_model_url").val();
	var app_label = $("#app_label").val();
	window.location.assign("/"+data_model_url+"/"+id+"/?app_label="+app_label);
}
/*
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 * 功能：删除操作
 * 参数：id:当前编辑对象的id
 */
function do_delete(id){
	var data_model_url = $("#data_model_url").val();
	var app_label = $("#app_label").val();
	window.location.assign("/"+data_model_url+"/_op_/_delete/?&K="+id);
}
/*
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 *功能： 通过_op_增加操作
 */
function do_add(action){
	var ref = $("#"+action).attr('ref');
	$("#grid_frame").attr('src',ref);
}
/*
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 * 功能：通过_new_增加操作
 */
function do_new(){
	var ref = $('#model_new').attr('ref');
	$("#grid_frame").attr('src',ref);
}
/*
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 * 功能：'清除'事件触发 
 */
function do_clear() {
	m_util.m_search.find("input,select").each(function(){
			 switch($(this).attr("type"))
			 {
					 case 'text','textarea':
							 $(this).attr("value","");
							 break;
					 case 'checkbox','radio':
							 $(this).attr("checked",false);
							 break;                                 
					 default:
							 $(this).attr("value","");
							 break;
			 };
	 });
	m_util.m_gird.flexOptions({
		newp :1,
		params : []
	}).flexReload();
}
function show_export(com,grid)
{
    var m_util = get_cur_util()
    ex_url = m_util.bg_params.split("?")[0]+"?show_export&"+m_util.cur_param;
    $.ajax(
        {
            type:"POST",
            dataType:"html",
            //data:"reportname="+  reportname    ,
            url:ex_url,
            success:function(data){
                exphtml=data;
                //alert(exphtml)
                var div_export=$("<div id='id_export_dialog' title='"+gettext('选择样式')+"'>"+exphtml+"</div>");
                $(document.body).append(div_export);
                div_export.find("#flex_btnReturn").unbind().click(function(){
                    $("#id_export_dialog").find("#id_close").click();
                })
                div_export.find("#flex_btnExport").unbind().click(function(){
                    ex_style = $(".export_style").val()
                    if(m_util.bg_params.indexOf('reportname') == -1){
		                m_util.bg_params = m_util.bg_params+"&reportname="+$("#verbose_name").val()+"&"
                    }
                    var url = m_util.bg_params+"format=.pdf"+"&hide="+m_util.hide_index.join(',')+"&"+m_util.cur_param+"&style="+ex_style;
                    //window.location.href = url;
                    window.open(url);
                })
                //alert(div_export.html());
                div_export.dialog({title:gettext('选择样式')});
            }
        }
    )
}
/*
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 * 功能：表格顶部导出增加txt导出
 * 参数：com:当前按钮名
 * 		grid：当前flexigrid表格对象
 */
function do_export(com,grid)
{
	var m_util = get_cur_util();
	var m_format = "xls";
    if (com==gettext("导出pdf")){
		m_format = "pdf";
	}else if (com==gettext("导出csv")){
		m_format = "csv";
	}else if (com==gettext("导出txt")){
		m_format = "txt";
	}
	if(m_util.bg_params.indexOf('reportname') == -1){
		m_util.bg_params = m_util.bg_params+"&reportname="+$("#verbose_name").val()+"&"
	}
	var url = m_util.bg_params+"format=."+m_format+"&hide="+m_util.hide_index.join(',')+"&"+m_util.cur_param;
	window.open(url);
//	$("#export_ifm").attr("src",url);
}
/*
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 * 功能：表格左边的导出与flex_base_export.js搭配使用
 * 参数：com：导出格式
 * 		reportname：导出名称
 * 		recordstart：从第几条开始
 * 		recordend：到第几条结束
 * 		all：是否全部导出
 */
function do_new_export(com,reportname,recordstart,recordend,all)
{
	if (com == "xls"){
		m_format = "xls";
	}else if (com=="pdf"){
		m_format = "pdf";
	}else if (com=="csv"){
		m_format = "csv";
	}else if (com=="txt"){
		m_format = "txt";
	}
	var url = m_util.bg_params+"&reportname="+reportname+"&format=."+m_format+"&all="+all+"&recordstart="+recordstart+"&recordend="+recordend+"&hide="+m_util.hide_index.join(',')+"&"+m_util.cur_param;
	window.open(url)
}
/*
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 * 获取当前grid被选择的行数据 
 */
function get_cur_select(index)
{
	var grid = m_util.get_grid();
    var ids = '';  
    $('.trSelected td:nth-child('+(index+1)+') div', grid).each(function(i) {  
            if (i)  ids += ',';  
            ids += $(this).text();  
        });
    return ids;
}

/*
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 * 获取当前单元格的值 
 */
function get_cur_cell(index){
	var m_item = $('.trSelected').children('td');
	var m_value = m_item.eq(index-1).children('div').html();
	if (m_value=='&nbsp;')m_value='';
	return m_value;
}
/*
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 * 获取页面url参数值
 */
function getQueryString(name)
{
    var reg = new RegExp("(^|\\?|&)"+ name +"=([^&]*)(\\s|&|$)", "i");  
    if (reg.test(location.href)) return unescape(RegExp.$2.replace(/\+/g, " ")); return "";
};


/*
 * grid数据加载前调用
 */
function do_Submit(){
	var p =this;
	var m_param = ''
	for (var i=0;i<p.params.length;i++)
	{
		m_param +='&'+p.params[i].name+'='+p.params[i].value;
	}
    //alert(m_param);
	get_cur_util().cur_param = 'page='+p.newp+'&rp='+p.rp+'&sortname='+p.sortname+'&sortorder='+p.sortorder+'&query='+p.query+'&qtype='+p.qtype+m_param
	//alert(get_cur_util().cur_param);
    return true;
}
/*
 *  列显隐开关回调函数
 */
function do_ToggleCol(cid, visible)
{
	var hide_index = get_cur_util().hide_index;
	if (visible)
	{
		var _tmp = [];
		for (var i=0;i<hide_index.length;i++)
		{
			if (hide_index[i]!=cid){_tmp.push(hide_index[i]);}
		}
		get_cur_util().hide_index = _tmp
	}
	else
	{
		get_cur_util().hide_index.push(cid);
	}
}

/*
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 * 功能：表格顶部按钮前台简单逻辑判断
 * 参数：com:当前按钮名
 * 		grid：当前flexigrid表格对象
 */
function toolbar(com, grid){
	var data_model_url = $("#data_model_url").val()
	if (com.toLowerCase()=="save" || com.toLowerCase() == "add"){
		window.location.assign("/"+data_model_url+"/_new_/?_lock=1")
	}else if (com.toLowerCase() =="edit" || com.toLowerCase() == "update"){
		var ids = get_cur_select(1);
		if (!ids){
			alert(gettext("请先勾选"));
			return false;
		}
		if (ids.indexOf(",") > 0){
			alert(gettext("只能选一个"));
			return false;
		}
		window.location.assign("/"+data_model_url+"/"+ids+"/")
	}else {
		var ids = get_cur_select(1);
		if (!ids){
			alert(gettext("请先勾选"));
			return false;
		}
		var ret = ""
		var t_ids = ids.split(",")
		for(i=0;i<t_ids.length;i++){
			ret +='&K='+ t_ids[i]
		}
		window.location.assign("/"+data_model_url+"/_op_/"+com+"/?"+ret);
	}
}
/*
 * 编写日期: 2014-03-05
 * 作者:     David.Dai@zkteco.com 
 * 功能：载入考勤参数设置信息
 */
function load_description()
{
	$.ajax({
		url:"/att/getallexcept/",
		dataType:"json",
		type:"POST",
		success:function(ret){
			var html=""
			data=ret.data
			for(var i=0;i<data.length;i++)
			{
				var tmp=data[i]
				html+="<span>"+tmp[0]+":<span class='color_orange'>"+ tmp[2] +"( "+tmp[1]+" )</span></span>&nbsp;&nbsp;";
			}
			$("#id_attexcept_desc").html(html);
		}
	});
}

